package com.javacoo.xservice.base.setting;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import lombok.Data;

/**
 * JedisPool相关配置
 * <p>说明:</p>
 * <li>对应application-*.properties中spring.redis.pool</li>
 * @author DuanYong
 * @since 2017年7月28日上午9:02:32
 */
@Data
@Component
@ConfigurationProperties(prefix = "spring.redis.pool")
public class JedisPoolSetting {
	/** 可用连接实例的最大数目:,默认值*/
	public static final int DEFAULT_MAX_ACTIVE= 1024;
	/** 可用连接实例的最大数目:,默认值*/
	public static final int DEFAULT_MAX_IDLE= 200;
	/** 可用连接实例的最大数目:,默认值*/
	public static final long DEFAULT_MAX_WAIT_MILLIS= 10000;
	
	/**可用连接实例的最大数目，默认值为8,如果赋值为-1，则表示不限制；如果pool已经分配了maxActive个jedis实例，则此时pool的状态为exhausted(耗尽)*/
    private int maxActive = DEFAULT_MAX_ACTIVE;
    /**控制一个pool最多有多少个状态为idle(空闲的)的jedis实例，默认值也是8。*/
    private int maxIdle = DEFAULT_MAX_IDLE;
    /**等待可用连接的最大时间，单位毫秒，默认值为-1，表示永不超时。如果超过等待时间，则直接抛出JedisConnectionException*/
    private long maxWaitMillis = DEFAULT_MAX_WAIT_MILLIS;
}
